如何计算Pandas列中特定值的出现次数

您所在的位置:网站首页 统计元素出现次数 python 如何计算Pandas列中特定值的出现次数

如何计算Pandas列中特定值的出现次数

2023-05-31 13:01| 来源: 网络整理| 查看: 265

如何计算Pandas列中特定值的出现次数

在这篇文章中,我们将讨论如何在pandas列中计算一个特定列值的出现次数。

使用中的数据集。

如何计算Pandas列中特定值的出现次数?

我们可以通过使用value_counts()方法进行计数。这个函数用来计算整个数据框架中存在的数值,也可以计算某一列的数值。

语法 :

data['column_name'].value_counts()[value]

其中,

data是输入数据帧 value是指要计算的列中存在的字符串/整数值 column_name是数据框架中的列。

例子 :要计算一个特定值的出现次数

# import pandas module import pandas as pd   # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({     'name': ['sravan', 'ojsawi', 'bobby',  'rohith',              'gnanesh', 'sravan', 'sravan', 'ojaswi'],     'subjects': ['java', 'php', 'java', 'php', 'java',                  'html/css', 'python', 'R'],     'marks': [98, 90, 78, 91, 87, 78, 89, 90],     'age': [11, 23, 23, 21, 21, 21, 23, 21] })   # count values in name column print(data['name'].value_counts()['sravan'])   # count values in subjects column print(data['subjects'].value_counts()['php'])   # count values in marks column print(data['marks'].value_counts()[89])

输出:

3 2 1

如果我们想计算某一列的所有数值,那么我们就不需要提到这个数值。

语法 :

data['column_name'].value_counts()

例子:要计算一个值在某一列中的出现次数

# import pandas module import pandas as pd   # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({     'name': ['sravan', 'ojsawi', 'bobby',  'rohith',              'gnanesh', 'sravan', 'sravan', 'ojaswi'],     'subjects': ['java', 'php', 'java', 'php', 'java',                  'html/css', 'python', 'R'],     'marks': [98, 90, 78, 91, 87, 78, 89, 90],     'age': [11, 23, 23, 21, 21, 21, 23, 21] })   # count all values in name column print(data['name'].value_counts())   # count all values in subjects column print(data['subjects'].value_counts())   # count all values in marks column print(data['marks'].value_counts())   # count all values in age column print(data['age'].value_counts())

输出:

如何计算Pandas列中特定值的出现次数?

如果我们想按顺序获得结果(如升序和降序),我们必须指定参数

语法:

升序:

data[‘column_name’].value_counts(ascending=True)

降序:

data[‘column_name’].value_counts(ascending=False)

例子:要以一种有序的方式获得结果

# import pandas module import pandas as pd   # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({     'name': ['sravan', 'ojsawi', 'bobby',  'rohith',              'gnanesh', 'sravan', 'sravan', 'ojaswi'],     'subjects': ['java', 'php', 'java', 'php', 'java',                  'html/css', 'python', 'R'],     'marks': [98, 90, 78, 91, 87, 78, 89, 90],     'age': [11, 23, 23, 21, 21, 21, 23, 21] })   # count all values in name column in ascending order print(data['name'].value_counts(ascending=True))   # count all values in subjects column in ascending order print(data['subjects'].value_counts(ascending=True))   # count all values in marks column in descending order print(data['marks'].value_counts(ascending=False))   # count all values in age column in descending order print(data['age'].value_counts(ascending=False))

输出:

如何计算Pandas列中特定值的出现次数?

处理缺失值的问题

这里我们可以计算有无NA值的出现。通过使用dropna参数,如果设置为True,则包括NA值,如果设置为False,则不计算NA。

语法 :

包括 NA 值:

data[‘column_name’].value_counts(dropna=True)

不包括NA 值:

data[‘column_name’].value_counts(dropna=False)

例子:处理缺失值的问题

# import pandas module import pandas as pd   #import numpy import numpy   # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({     'name': ['sravan', 'ojsawi', 'bobby',  'rohith', 'gnanesh',              'sravan', 'sravan', 'ojaswi', numpy.nan],     'subjects': ['java', 'php', 'java', 'php', 'java', 'html/css',                  'python', 'R', numpy.nan],     'marks': [98, 90, 78, 91, 87, 78, 89, 90, numpy.nan],     'age': [11, 23, 23, 21, 21, 21, 23, 21, numpy.nan] })   # count all values in name column including NA print(data['name'].value_counts(dropna=False))   # count all values in subjects column including NA print(data['subjects'].value_counts(dropna=False))   # count all values in marks column excluding NA print(data['marks'].value_counts(dropna=False))   # count all values in age column excluding NA print(data['age'].value_counts(dropna=True))

输出:

如何计算Pandas列中特定值的出现次数?

具有相对频率的计数值

我们要添加normalize参数来获得重复数据的相对频率。它被设置为True。

语法:

data[‘column_name’].value_counts(normalize=True)

例子:具有相对频率的计数值

# import pandas module import pandas as pd   # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({     'name': ['sravan', 'ojsawi', 'bobby',  'rohith',              'gnanesh', 'sravan', 'sravan', 'ojaswi'],     'subjects': ['java', 'php', 'java', 'php', 'java',                  'html/css', 'python', 'R'],     'marks': [98, 90, 78, 91, 87, 78, 89, 90],     'age': [11, 23, 23, 21, 21, 21, 23, 21] })   # count all values in name  with relative frequencies print(data['name'].value_counts(normalize=True))

输出:

sravan 0.375 ojaswi 0.125 ojsawi 0.125 bobby 0.125 rohith 0.125 gnanesh 0.125 Name: name, dtype: float64 获取详细信息

如果我们想获得计数、平均值、标准差、最小值、25%、50%、75%、最大值等详细信息,那么我们必须使用describe()方法。

语法 :

data['column_name'].describe()

示例:获得详细信息

# import pandas module import pandas as pd   # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({     'name': ['sravan', 'ojsawi', 'bobby',  'rohith',              'gnanesh', 'sravan', 'sravan', 'ojaswi'],     'subjects': ['java', 'php', 'java', 'php', 'java',                  'html/css', 'python', 'R'],     'marks': [98, 90, 78, 91, 87, 78, 89, 90],     'age': [11, 23, 23, 21, 21, 21, 23, 21] })   # get about age print(data['age'].describe())

输出:

count 8.000000 mean 20.500000 std 3.964125 min 11.000000 25% 21.000000 50% 21.000000 75% 23.000000 max 23.000000 Name: age, dtype: float64 使用size()和groupby()

在这里,这将返回某一列中所有出现的计数。

语法 :

data.groupby('column_name').size()

例子 :对某一列中所有出现的情况进行计数

# import pandas module import pandas as pd   # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({     'name': ['sravan', 'ojsawi', 'bobby',  'rohith',              'gnanesh', 'sravan', 'sravan', 'ojaswi'],     'subjects': ['java', 'php', 'java', 'php', 'java',                  'html/css', 'python', 'R'],     'marks': [98, 90, 78, 91, 87, 78, 89, 90],     'age': [11, 23, 23, 21, 21, 21, 23, 21] })   # get the size of name print(data.groupby('name').size())

输出:

name bobby 1 gnanesh 1 ojaswi 1 ojsawi 1 rohith 1 sravan 3 dtype: int64 使用count()和groupby()

在这里,这将返回所有列中某一列的所有出现的计数。

语法 :

data.groupby('column_name').count()

例子 :对某一列中所有出现的情况进行计数

# import pandas module import pandas as pd   # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({     'name': ['sravan', 'ojsawi', 'bobby',  'rohith',              'gnanesh', 'sravan', 'sravan', 'ojaswi'],     'subjects': ['java', 'php', 'java', 'php', 'java',                  'html/css', 'python', 'R'],     'marks': [98, 90, 78, 91, 87, 78, 89, 90],     'age': [11, 23, 23, 21, 21, 21, 23, 21] })   # get the count of name across all columns print(data.groupby('name').count())

输出:

如何计算Pandas列中特定值的出现次数?

使用 bins

如果我们想得到某个特定范围内的计数,那么就应用bins参数。我们可以指定范围(bins)的数量。

语法:

(data['column_name'].value_counts(bins)

其中,

data是输入数据帧 column_name是要得到的列。 bins是指要指定的分选区总数

例子:在特定的数值范围内获取计数

# import pandas module import pandas as pd   # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({     'name': ['sravan', 'ojsawi', 'bobby',  'rohith',              'gnanesh', 'sravan', 'sravan', 'ojaswi'],     'subjects': ['java', 'php', 'java', 'php', 'java',                  'html/css', 'python', 'R'],     'marks': [98, 90, 78, 91, 87, 78, 89, 90],     'age': [11, 23, 23, 21, 21, 21, 23, 21] })   # get count of  age column with  6 bins print(data['age'].value_counts(bins=6))   # get count of  age column with  4 bins print(data['age'].value_counts(bins=4))

输出:

(19.0, 21.0] 4 (21.0, 23.0] 3 (10.987, 13.0] 1 (17.0, 19.0] 0 (15.0, 17.0] 0 (13.0, 15.0] 0 Name: age, dtype: int64 (20.0, 23.0] 7 (10.987, 14.0] 1 (17.0, 20.0] 0 (14.0, 17.0] 0 Name: age, dtype: int64 使用 apply()

如果我们想获得所有列的计数,那么我们必须使用apply()函数。在此,我们将使用value_counts()方法。

语法:

data.apply(pd.value_counts)

例子:获得所有列的计数,跨所有列的计数

# import pandas module import pandas as pd   # create a dataframe # with 5 rows and 4 columns data = pd.DataFrame({     'name': ['sravan', 'bobby', 'sravan', 'sravan', 'ojaswi'],     'subjects': ['java', 'php', 'java', 'html/css', 'python'],     'marks': [98, 90, 78, 91, 87],     'age': [11, 23, 23, 21, 21] })   # get all count data.apply(pd.value_counts)

输出:

如何计算Pandas列中特定值的出现次数?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3